
#ifndef SX_PLOT_AXES_REPRESENTATION_H
#define SX_PLOT_AXES_REPRESENTATION_H

#include <sxStaticRepresentation.h>
#include <sxMath.h>
#include <sxBufferUtilities.h>

namespace Sx {
namespace Graphics {
namespace Representations {
namespace Objects {

/* 
 * The vertices array is used to hold the vertices of the grid that is
 * stored by this representation.
 */
struct PlotAxes_Representation : public StaticRepresentation {
	/*
	 * Each axes is represented by a line that extends to the end of the plot.
	 * These are stored for the negative and positive ends of the line on
	 * the specified axis (nx = negative x, px = positive x).
	 */
	Eigen::Vector3f nx, px, ny, py, nz, pz;

	/* Each grid array holds the points of the lines that compose the grid. */
	Util::VectorArray grid_XY, grid_YZ, grid_XZ;

	/* These arrays hold the vertices of each tick line (drawn on each axis) */
	Util::VectorArray xTickLines, yTickLines, zTickLines;
};

}

}

}

}

#endif
